-
-
Notifications
You must be signed in to change notification settings - Fork 680
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: update tools.json #3440
chore: update tools.json #3440
Conversation
WalkthroughThe changes in this pull request involve updates to two configuration files: Changes
Possibly related PRs
Suggested labels
Suggested reviewers
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
✅ Deploy Preview for asyncapi-website ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #3440 +/- ##
=======================================
Coverage 67.77% 67.77%
=======================================
Files 21 21
Lines 664 664
=======================================
Hits 450 450
Misses 214 214 ☔ View full report in Codecov by Sentry. |
⚡️ Lighthouse report for the changes in this PR:
Lighthouse ran on https://deploy-preview-3440--asyncapi-website.netlify.app/ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Outside diff range and nitpick comments (1)
config/tools-automated.json (1)
Duplicate entries need cleanup in tools-automated.json
The analysis reveals two types of issues:
- Exact duplicates: Some tools appear multiple times in the same category with identical information
- Multi-category tools: Some tools legitimately belong to multiple categories but are duplicated
Specific issues:
- AsyncAPI CLI appears 8 times with identical categories (others, cli)
- AsyncAPI.Net appears 3 times with identical categories
- GitHub Action for Generator has inconsistent category naming (github-action vs github-actions)
- SIO-AsyncAPI, ZenWave SDK, and Zod Sockets have legitimate multi-category presence but contain duplicate entries within those categories
🔗 Analysis chain
Line range hint
1-900
: Validate JSON structure and categoriesThe overall structure is valid, but there are some consistency improvements needed:
- Language specifications should match the actual implementation language
- Some tools appear in multiple categories - ensure this is intentional
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Validate JSON structure jq '.' config/tools-automated.json > /dev/null # Find tools that appear in multiple categories jq -r '.[] | select(.toolsList != null) | .toolsList[] | .title' config/tools-automated.json | sort | uniq -dLength of output: 237
Script:
#!/bin/bash # Let's analyze the duplicate entries to understand their categories and validate if they are legitimate duplicates # For each duplicate, find their categories echo "=== AsyncAPI CLI ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "AsyncAPI CLI") | .description' config/tools-automated.json echo -e "\n=== AsyncAPI.Net ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "AsyncAPI.Net") | .description' config/tools-automated.json echo -e "\n=== GitHub Action for Generator ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "GitHub Action for Generator") | .description' config/tools-automated.json echo -e "\n=== SIO-AsyncAPI ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "SIO-AsyncAPI") | .description' config/tools-automated.json echo -e "\n=== ZenWave SDK ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "ZenWave SDK") | .description' config/tools-automated.json echo -e "\n=== Zod Sockets ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "Zod Sockets") | .description' config/tools-automated.jsonLength of output: 2937
Script:
#!/bin/bash # Let's check the actual categories for each duplicate entry to validate if they serve multiple purposes echo "=== AsyncAPI CLI Categories ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "AsyncAPI CLI") | .toolsList[] | select(.title == "AsyncAPI CLI") | .filters.categories[]' config/tools-automated.json echo -e "\n=== AsyncAPI.Net Categories ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "AsyncAPI.Net") | .toolsList[] | select(.title == "AsyncAPI.Net") | .filters.categories[]' config/tools-automated.json echo -e "\n=== GitHub Action for Generator Categories ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "GitHub Action for Generator") | .toolsList[] | select(.title == "GitHub Action for Generator") | .filters.categories[]' config/tools-automated.json echo -e "\n=== SIO-AsyncAPI Categories ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "SIO-AsyncAPI") | .toolsList[] | select(.title == "SIO-AsyncAPI") | .filters.categories[]' config/tools-automated.json echo -e "\n=== ZenWave SDK Categories ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "ZenWave SDK") | .toolsList[] | select(.title == "ZenWave SDK") | .filters.categories[]' config/tools-automated.json echo -e "\n=== Zod Sockets Categories ===" jq -r '.[] | select(.toolsList != null) | select(.toolsList[].title == "Zod Sockets") | .toolsList[] | select(.title == "Zod Sockets") | .filters.categories[]' config/tools-automated.jsonLength of output: 2190
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
📒 Files selected for processing (2)
config/all-tags.json
(1 hunks)config/tools-automated.json
(10 hunks)
🔇 Additional comments (2)
config/tools-automated.json (2)
189-202
: LGTM: Well-structured Golang generator entry
The new Golang AsyncAPI Code Generator entry is properly formatted and includes all necessary information.
6-24
: Verify API endpoint availability and documentation
The SIO-AsyncAPI tool links have been updated to point to a new GitHub repository. The tool is now marked as non-AsyncAPI owned.
✅ Verification successful
Repository is active and correctly represents AsyncAPI tooling
The verification confirms:
- Repository exists and is not archived
- Description accurately reflects AsyncAPI-related functionality: "SIO-AsyncAPI is a Python library built on the top of Flask-SocketIO and driven by AsyncAPI"
- The tool entry in tools-automated.json correctly represents:
- Technology stack (Python, Socket.IO, Flask)
- Non-AsyncAPI ownership status
- Purpose (code-first AsyncAPI specification generation)
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Verify the repository exists and is accessible
gh repo view daler-rahimov/sio-asyncapi --json name,isArchived,description
# Check if the repository contains AsyncAPI-related content
rg -l "asyncapi" --type yaml --type json
Length of output: 1088
{"languages":[{"name":"Go/Golang","color":"bg-[#8ECFDF]","borderColor":"border-[#00AFD9]"},{"name":"Java","color":"bg-[#ECA2A4]","borderColor":"border-[#EC2125]"},{"name":"JavaScript","color":"bg-[#F2F1C7]","borderColor":"border-[#BFBE86]"},{"name":"HTML","color":"bg-[#E2A291]","borderColor":"border-[#E44D26]"},{"name":"C/C++","color":"bg-[#93CDEF]","borderColor":"border-[#0080CC]"},{"name":"C#","color":"bg-[#E3AFE0]","borderColor":"border-[#9B4F96]"},{"name":"Python","color":"bg-[#A8D0EF]","borderColor":"border-[#3878AB]"},{"name":"TypeScript","color":"bg-[#7DBCFE]","borderColor":"border-[#2C78C7]"},{"name":"Kotlin","color":"bg-[#B1ACDF]","borderColor":"border-[#756BD9]"},{"name":"Scala","color":"bg-[#FFA299]","borderColor":"border-[#DF301F]"},{"name":"Markdown","color":"bg-[#BABEBF]","borderColor":"border-[#445B64]"},{"name":"YAML","color":"bg-[#FFB764]","borderColor":"border-[#F1901F]"},{"name":"R","color":"bg-[#84B5ED]","borderColor":"border-[#246BBE]"},{"name":"Ruby","color":"bg-[#FF8289]","borderColor":"border-[#FF000F]"},{"name":"Rust","color":"bg-[#FFB8AA]","borderColor":"border-[#E43716]"},{"name":"Shell","color":"bg-[#87D4FF]","borderColor":"border-[#389ED7]"},{"name":"Groovy","color":"bg-[#B6D5E5]","borderColor":"border-[#609DBC]"}],"technologies":[{"name":"Node.js","color":"bg-[#BDFF67]","borderColor":"border-[#84CE24]"},{"name":"Hermes","color":"bg-[#8AEEBD]","borderColor":"border-[#2AB672]"},{"name":"React JS","color":"bg-[#9FECFA]","borderColor":"border-[#08D8FE]"},{"name":".NET","color":"bg-[#A184FF]","borderColor":"border-[#5026D4]"},{"name":"ASP.NET","color":"bg-[#71C2FB]","borderColor":"border-[#1577BC]"},{"name":"Springboot","color":"bg-[#98E279]","borderColor":"border-[#68BC44]"},{"name":"AWS","color":"bg-[#FF9F59]","borderColor":"border-[#EF6703]"},{"name":"Docker","color":"bg-[#B8E0FF]","borderColor":"border-[#2596ED]"},{"name":"Node-RED","color":"bg-[#FF7474]","borderColor":"border-[#8F0101]"},{"name":"Maven","color":"bg-[#FF6B80]","borderColor":"border-[#CA1A33]"},{"name":"Saas","color":"bg-[#6AB8EC]","borderColor":"border-[#2275AD]"},{"name":"Kubernetes-native","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Scala","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Azure","color":"bg-[#4B93FF]","borderColor":"border-[#015ADF]"},{"name":"Jenkins","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Flask","color":"bg-[#D7C7F2]","borderColor":"border-[#A387D2]"},{"name":"Nest Js","color":"bg-[#E1224E]","borderColor":"border-[#B9012b]"},{"name":"Socket.IO","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"TypeScript","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Liquid","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Kotlin","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Gradle","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Spring Cloud Streams","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JHipster JDL","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Groovy","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Markdown","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Shell","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"WebComponents","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Babel","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Storybook","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"AsyncAPI Generator","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"VSCode","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"SmartPaste","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"JetBrains","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"IntelliJ IDEA","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"Java","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"},{"name":"HTML","color":"bg-[#61d0f2]","borderColor":"border-[#40ccf7]"}]} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💡 Codebase verification
Consider maintaining visual differentiation between technologies
20 out of 36 technologies (more than 55%) share identical colors (bg-[#61d0f2], border-[#40ccf7]), which significantly reduces visual distinction in the UI. This includes diverse technologies like Socket.IO, TypeScript, Kotlin, VSCode, and Java that would benefit from visual differentiation.
Consider:
- Using distinct colors for major technology categories (e.g., languages, frameworks, tools)
- Maintaining a cohesive but varied color palette for better visual hierarchy
- Preserving unique colors for key technologies to improve scanability
🔗 Analysis chain
Consider maintaining visual differentiation between technologies
Multiple technologies now share the same color scheme (bg-[#61d0f2], border-[#40ccf7]). While this creates consistency, it might make it harder for users to visually distinguish between different technologies in the UI.
Consider maintaining some color variation between different technology categories while still keeping a cohesive color palette. This could improve visual hierarchy and make it easier for users to scan and differentiate technologies.
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Count how many technologies share the same color scheme
jq -r '.technologies[] | select(.color=="bg-[#61d0f2]" and .borderColor=="border-[#40ccf7]") | .name' config/all-tags.json | wc -l
Length of output: 135
"title": "Node.js Multiprotocol Template", | ||
"description": "This template generates a server using your AsyncAPI document. It supports multiple different protocols, like Kafka or MQTT. It is designed in the way that generated code is a library and with it's API you can start the server, send messages or register a middleware for listening incoming messages. Runtime message validation included.", | ||
"links": { | ||
"repoUrl": "https://github.com/asyncapi/nodejs-ws-template" | ||
"repoUrl": "https://github.com/asyncapi/nodejs-template" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consolidate duplicate AsyncAPI CLI entries
There are multiple entries for AsyncAPI CLI with identical descriptions but different repository URLs. Consider consolidating these entries to avoid confusion.
Consider keeping only the official AsyncAPI CLI entry (https://github.com/asyncapi/cli) and removing or updating the fork entry to clarify its purpose.
"language": [ | ||
"javascript" | ||
], |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix incorrect language specification for Java template
The Java template incorrectly specifies "javascript" as the language.
"filters": {
"language": [
- "javascript"
+ "java"
],
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
"language": [ | |
"javascript" | |
], | |
"language": [ | |
"java" | |
], |
Automated changes by create-pull-request GitHub action
Summary by CodeRabbit
New Features
Bug Fixes
Documentation